home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / plain / contrib / thirteen.tex < prev    next >
Encoding:
Text File  |  1994-04-19  |  2.9 KB  |  203 lines

  1.   \parindent=0pt
  2.   \font\big=cmb10 scaled\magstep3
  3.   \centerline{\big FRIDAY THE THIRTEEN}
  4.   \normalbaselineskip=12pt
  5.   \noindent
  6.   \newcount\dw                         % Gets day of the week
  7.   \newcount\leap                        % Leap year fingaler
  8.   \newcount\m                           % Temp register
  9.   \newcount\y                           % Another temp register
  10.   \newcount\a
  11.   \newcount\b
  12.   \newcount\x
  13.   \newcount\jd
  14.   \newcount\aantal
  15.   \newcount\kalmaand
  16.   \newcount\alfa
  17.   \newcount\eindjaar
  18.   \newcount\tempjaar
  19.   \newcount\firstyear
  20.   \newcount\lastyear
  21.   \newcount\c
  22.   \newcount\d
  23.   \newcount\e
  24.   \newcount\f
  25.   \newcount\z
  26.   \newcount\jda
  27.   \newcount\jdb
  28.   \newcount\difference
  29.   \newcount\jaar
  30.   \newcount\maand
  31.   \newcount\dag
  32.   \newcount\jr
  33.   \newcount\mnd
  34.   \newcount\dg
  35. %
  36. \parskip=1.5cm
  37. %
  38. \def\daydifference
  39. {
  40. \message{date 1: }
  41. \datjul
  42. \jda=\jd
  43. \message{date 2: }
  44. \datjul
  45. \jdb=\jd
  46. \advance\jdb by-\jda
  47. \difference=\jdb
  48. \ifnum\difference<0
  49. \multiply\difference by -1
  50. \fi
  51. \hbox{\number\difference}\hfill\break
  52. }
  53. \def\dayafter
  54. {
  55. \message{date 1: }
  56. \datjul
  57. \message{day difference :}
  58. \read16 to\difference
  59. \advance\jd by\difference
  60. \number\difference\hfill\break
  61. \z=\jd
  62. \juldat
  63. \hbox{\number\jr\ \number\mnd\ \number\dg}\hfill\break
  64. }
  65.  
  66. \def\datjul{
  67. %
  68. %
  69. %
  70. %
  71. \jaar=1991
  72. %\read16 to\maand
  73. %\read16 to\dag
  74. %\hbox{\number\jaar\ \number\maand\ \number\dag}\hfill\break
  75. \global\eindjaar=\jaar
  76. \global\advance\eindjaar by15
  77. \maand=1
  78. \dag=1
  79. \ifnum\maand>2
  80.    \y=\jaar
  81.    \m=\maand
  82. \else
  83.    \y=\jaar \advance\y by-1
  84.    \m=\maand \advance\m by12
  85. \fi
  86. \a=\y
  87. \divide\a by100
  88. \b=2
  89. \advance\b by-\a
  90. \x=\a
  91. \divide\x by4
  92. \advance\b by\x
  93. %
  94. \jd=\y
  95. \multiply\jd by36525
  96. \divide\jd by100
  97. %
  98. \x=\m
  99. \advance\x by1
  100. \multiply\x by306001
  101. \divide\x by10000
  102. \advance\jd by\x
  103. \advance\jd by\dag
  104. \advance\jd by1720995
  105. \advance\jd by\b
  106. }
  107. %
  108. \def\dayofweek{
  109. \x=\jd
  110. \advance\x by 1
  111. \dw=\x   \divide\x by 7 \multiply\x by 7 \advance\dw by -\x
  112. }
  113.  
  114. %
  115. %
  116. \def\juldat{
  117. \ifnum\z<2299161
  118.    \a=\z
  119. \else
  120.    \alfa=\z
  121.    \multiply\alfa by100
  122.    \advance\alfa by-186721625
  123.    \divide\alfa by3652425
  124.    \a=\z
  125.    \advance\a by1
  126.    \advance\a by\alfa
  127.    \divide\alfa by4
  128.    \advance\a by-\alfa
  129. \fi
  130. %
  131. \b=\a
  132. \advance\b by1524
  133. %
  134. \c=\b
  135. \multiply\c by100
  136. \advance\c by-12210
  137. \divide\c by36525
  138. %
  139. \d=\c
  140. \multiply\d by36525
  141. \divide\d by100
  142. %
  143. \e=\b
  144. \advance\e by-\d
  145. \multiply\e by10000
  146. \divide\e by306001
  147. %
  148. %
  149. \x=\b
  150. \advance\x by-\d
  151. \dg=\x
  152. \x=\e
  153. \multiply\x by306001
  154. \divide\x by10000
  155. \advance\dg by-\x
  156. %
  157. \mnd=\e
  158. \advance\mnd by-1
  159. \ifnum\e>13
  160.     \advance\mnd by-12
  161. \fi
  162. %
  163. \jr=\c
  164. \advance\jr by-4715
  165. \ifnum\mnd>2
  166.    \advance\jr by-1
  167. \fi
  168. }
  169. %
  170. \def\leesjul{
  171. \relax
  172. \read16 to \z
  173. }
  174. \newdimen\cf
  175. \setbox0=\hbox{\rm0}
  176. \cf=\wd0
  177. \def\breedte{\kern\cf}
  178. \def\dertien{
  179. \datjul
  180. \kalmaand=\maand
  181. \dayofweek
  182. \z=\jd
  183. \juldat
  184. \loop\ifnum\jr<\eindjaar
  185.    \dayofweek
  186.    \ifnum\dg=13
  187.        \ifnum\dw=5
  188.        \hbox{\number\jr\ \number\dg\ \number\mnd}
  189.        \fi
  190.    \fi
  191.    \advance\z by1
  192.    \jd=\z
  193.    \juldat
  194. \repeat
  195. }
  196. %
  197. \dertien
  198. \bye
  199.  
  200.  
  201.  
  202.  
  203.